/*
 * JBoss, Home of Professional Open Source
 * Copyright 2011, Red Hat, Inc., and individual contributors
 * by the @authors tag. See the copyright.txt in the distribution for a
 * full listing of individual contributors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.slaffka.security;

import org.jboss.seam.faces.event.PhaseIdType;
import org.jboss.seam.faces.rewrite.FacesRedirect;
import org.jboss.seam.faces.rewrite.UrlMapping;
import org.jboss.seam.faces.security.LoginView;
import org.jboss.seam.faces.security.RestrictAtPhase;
import org.jboss.seam.faces.view.config.ViewConfig;
import org.jboss.seam.faces.view.config.ViewPattern;

/**
 * @author <a href="mailto:bleathem@gmail.com">Brian Leathem</a>
 */
@ViewConfig
public interface MyAppViewConfig {

    static enum Pages {

        @ViewPattern("/admin.xhtml")
        @Admin
        ADMIN,

        @UrlMapping(pattern = "/loans")
        @ViewPattern("/loans.xhtml")
        @Owner
        CONTRACT_LIST,

        @UrlMapping(pattern = "/debtors")
        @ViewPattern("/debtors.xhtml")
        @Owner
        DEBTORS,

        @UrlMapping(pattern = "/users")
        @ViewPattern("/users.xhtml")
        @Owner
        USERS,

        @UrlMapping(pattern = "/reports")
        @ViewPattern("/reports.xhtml")
        @Owner
        REPORTS,

        @RestrictAtPhase({PhaseIdType.RESTORE_VIEW, PhaseIdType.INVOKE_APPLICATION})
        @UrlMapping(pattern = "/filials")
        @ViewPattern("/filials.xhtml")
        @Admin
        FILIALS,

        @UrlMapping(pattern = "/reports/registryOfLoans")
        @ViewPattern("/reports/registryOfLoans.xhtml")
        @Owner
        REGISTRY_OF_LOANS,

        @FacesRedirect
        @ViewPattern("/*")
        //@AccessDeniedView("/denied.xhtml")
        @LoginView("/login")
        ALL,

        @UrlMapping(pattern = "/login")
        @ViewPattern("/login.xhtml")
        LOGIN;
    }
}
